1. Field of the Invention
The present invention relates virtual environments and, more particularly, to a method and apparatus for enabling people to find each other and stay together in virtual environments.
2. Description of the Related Art
Virtual environments simulate actual or fantasy 3-D environments and allow for many participants to interact with each other and with constructs in the environment via remotely-located clients. One context in which a virtual environment may be used is in connection with gaming, although other uses for virtual environments are also being developed.
In a virtual environment, an actual or fantasy universe is simulated within a computer processor/memory. Multiple people may participate in the virtual environment through a computer network, such as a local area network or a wide area network such as the Internet. Each player selects an “Avatar” which is often a three-dimensional representation of a person or other object to represent them in the virtual environment. Participants send commands to a virtual environment server that controls the virtual environment to cause their Avatars to move within the virtual environment. In this way, the participants are able to cause their Avatars to interact with other Avatars and other objects in the virtual environment.
A virtual environment often takes the form of a virtual-reality three dimensional map, and may include rooms, outdoor areas, and other representations of environments commonly experienced in the physical world. The virtual environment may also include multiple objects, people, animals, robots, Avatars, robot Avatars, spatial elements, and objects/environments that allow Avatars to participate in activities. Participants establish a presence in the virtual environment via a virtual environment client on their computer, through which they can create an Avatar and then cause the Avatar to “live” within the virtual environment.
As the Avatar moves within the virtual environment, the view experienced by the Avatar changes according to where the Avatar is located within the virtual environment. The views may be displayed to the participant so that the participant controlling the Avatar may see what the Avatar is seeing. Additionally, many virtual environments enable the participant to toggle to a different point of view, such as from a vantage point outside of the Avatar, to see where the Avatar is in the virtual environment.
The participant may control the Avatar using conventional input devices, such as a computer mouse and keyboard. The inputs are sent to the virtual environment client which forwards the commands to one or more virtual environment servers that are controlling the virtual environment and providing a representation of the virtual environment to the participant via a display associated with the participant's computer.
Depending on how the virtual environment is set up, an Avatar may be able to observe the environment and optionally also interact with other Avatars, modeled objects within the virtual environment, robotic objects within the virtual environment, or the environment itself (i.e. an Avatar may be allowed to go for a swim in a lake or river in the virtual environment). In these cases, client control input may be permitted to cause changes in the modeled objects, such as moving other objects, opening doors, and so forth, which optionally may then be experienced by other Avatars within the virtual environment.
“Interaction” by an Avatar with another modeled object in a virtual environment means that the virtual environment server simulates an interaction in the modeled environment, in response to receiving client control input for the Avatar. Interactions by one Avatar with any other Avatar, object, the environment or automated or robotic Avatars may, in some cases, result in outcomes that may affect or otherwise be observed or experienced by other Avatars, objects, the environment, and automated or robotic Avatars within the virtual environment.
A virtual environment may be created for the user, but more commonly the virtual environment may be persistent, in which it continues to exist and be supported by the virtual environment server even when the user is not interacting with the virtual environment. Thus, where there is more than one user of a virtual environment, the environment may continue to evolve when a user is not logged in, such that the next time the user enters the virtual environment it may be changed from what it looked like the previous time.
Virtual environments are commonly used in on-line gaming, such as for example in online role playing games where users assume the role of a character and take control over most of that character's actions. In addition to games, virtual environments are also being used to simulate real life environments to provide an interface for users that will enable on-line education, training, shopping, workplace collaboration, and other types of interactions between groups of users and between businesses and users.
As Avatars encounter other Avatars within the virtual environment, the participants represented by the Avatars may elect to communicate with each other. For example, the participants may communicate with each other by typing messages to each other or an audio bridge may be established to enable the participants to talk with each other.
As virtual environments proliferate, it becomes harder for people to find each other. Likewise, people may want to meet each other and stay together as a group. Where the group is to jump between virtual worlds, this becomes difficult. Accordingly, it would be advantageous to provide a way for people to meet each other and then stay together as they negotiate through one or more virtual environments.
Coincident with this is a need for people to not be found when they don't want to be found. People may want to avoid letting everyone know where they will be in the virtual environment because they may want to not be interrupted or tracked as they negotiate through the virtual environment. For example, a person may want to avoid their employer, family, ex-spouse, particular acquaintances, or other people for various reasons. Additionally, predators may seek out or stalk people in virtual environments, so people need to be able to retain a level of privacy.
To accommodate these competing needs, user directories have been created. For example, a particular directly may track where users are in the virtual environment and store users' locations in a directory that is accessible by other users. While this allows users to be found, it does not address the privacy concerns, since anyone can find anyone at any time simply by looking for the person in the directory. Additionally, since the directory is specific to a particular virtual environment, it does not help find people who may be in different virtual environments.
Another solution that has been tried also uses a directory, but uses restricted access to start to protect users' privacy. Each user is allowed to designate a group of other users as “friends” to enable those people to find the user in the virtual environment. This is better from a privacy standpoint, in that only selected individuals may find the user through the directory. However, it still is somewhat lacking in that once a user has designated someone else as a “friend” the other person can find the user at any point in time. There may be times when the user would prefer to not be found. Unfortunately, this solution does not enable that to occur. Additionally, similar to the previous directory solution, this solution only works where all of the users belong to the same directory, and for a particular virtual environment. Where not everyone belongs to the directory the directory doesn't work. Similarly, where the user would like to have a list of friends in more than one virtual environment, the user will need to duplicate the friend list to each of the virtual environments.
Another way that privacy and location issues have attempted to be solved is to allow users to create groups. Typically, a particular user will construct a group of people who wish to travel together in the virtual environment. The group may have a leader who is responsible for selecting where the group will go within the virtual environment. Groups of this nature take effort to set up and therefore only really make sense for long lived activities, common in massively multiplayer on-line games, where a group may stay together for hours, days, or longer. Since setting up a group is cumbersome, it is frequently difficult to justify the effort required to establish a group when the intended activity is to be short-lived, such as a quick 15 minute tour or meeting. Additionally, groups only are supported within a particular virtual environment—they do not span between virtual environments—and can typically only be formed after all users have already found each other. Thus, the group members will need to communicate with each other off-line to enable the group to be assembled. Once the group has been assembled, the lifespan of the group is manually managed.